home *** CD-ROM | disk | FTP | other *** search
/ MacWorld: Complete Mac Interactive / Macworld Complete Mac Interactive CD)(1994).iso / The Best of BMUG / Utilities / Text and Speech / Alpha.5.76 / Tcl / SystemCode / win.tcl < prev   
Text File  |  1994-03-08  |  3KB  |  151 lines

  1. #=============================================================================
  2. #    Window handling routines. All procs are bound in AlphaBits.tcl.
  3. #=============================================================================
  4.  
  5. proc shrinkHigh {} {
  6.     set text [getGeometry]
  7.     set left [lindex $text 0]
  8.     set top [lindex $text 1]
  9.     set width [lindex $text 2]
  10.     sizeWin $width 150
  11.     moveWin $left 42 
  12. }
  13.  
  14. proc shrinkLow {} {
  15.     set text [getGeometry]
  16.     set left [lindex $text 0]
  17.     set top [lindex $text 1]
  18.     set width [lindex $text 2]
  19.     moveWin $left 330
  20.     sizeWin $width 146
  21. }
  22.  
  23.  
  24. proc swapWithNext {} {
  25.     set files [winNames -f]
  26.     set len [llength $files]
  27.     if {$len <= 1} return
  28.     bringToFront [lindex $files 1]
  29. }
  30.     
  31. proc nextWindow {} {
  32.     set files [winNames -f]
  33.     if {[llength $files] <= 1} return
  34.     sendToBack [lindex $files 0]
  35. }
  36.  
  37. proc prevWindow {} {
  38.     set files [winNames -f]
  39.     set len [llength $files]
  40.     if {$len <= 1} return
  41.     bringToFront [lindex $files [expr $len-1]]
  42. }
  43.  
  44. proc dispFullName {} {
  45.     message [lindex [winNames -f] 0]
  46. }
  47.  
  48. proc vertically {} {
  49.     global tileHeight
  50.     global tileWidth
  51.     global numWinsToTile
  52.     set margin 22
  53.     set names [winNames -f]
  54.     set numWins [llength $names]
  55.     if ($numWins<=1) return
  56.     if ($numWins>$numWinsToTile) {set numWins $numWinsToTile}
  57.     set height [expr ($tileHeight/$numWins)-$margin]
  58.     set height [expr {$height + $margin / $numWins}]
  59.     set width $tileWidth
  60.     set ver 40
  61.     if {$numWins == 0} {return}
  62.  
  63.     for {set i 0} {$i < $numWins} {incr i} {
  64.         moveWin [lindex $names $i] 1000 0
  65.         sizeWin [lindex $names $i] $width $height
  66.     }
  67.  
  68.     for {set i 0} {$i < $numWins} {incr i} {
  69.         moveWin [lindex $names $i] 3 $ver
  70.         set ver [expr $ver+$margin+$height]
  71.     }
  72. }
  73.  
  74. proc horizontally {} {
  75.     global tileHeight
  76.     global tileWidth
  77.     global numWinsToTile
  78.     set names [winNames -f]
  79.     set numWins [llength $names]
  80.     if ($numWins<=1) return
  81.     if ($numWins>$numWinsToTile) {set numWins $numWinsToTile}
  82.     set margin 4
  83.     set width [expr ($tileWidth/$numWins)-$margin]
  84.     set width [expr {$width + $margin / $numWins}]
  85.     set height $tileHeight
  86.     set hor 0
  87.     if {$numWins == 0} {return}
  88.  
  89.     for {set i 0} {$i < $numWins} {incr i} {
  90.         moveWin [lindex $names $i] 1000 0
  91.         sizeWin [lindex $names $i] $width $height
  92.     }
  93.  
  94.     for {set i 0} {$i < $numWins} {incr i} {
  95.         moveWin [lindex $names $i] $hor 40
  96.         set hor [expr $hor+$width+$margin]
  97.     }
  98. }
  99.  
  100. proc tiled {} {
  101.     global tileHeight
  102.     global tileWidth
  103.     global numWinsToTile
  104.     set xPan 8
  105.     set yPan 10
  106.     set xMarg 3
  107.     set yMarg 40
  108.     set yMax 50
  109.     set names [winNames -f]
  110.     set numWins [llength $names]
  111.     if ($numWins<1) return
  112.     set line 0    
  113.     set height [expr $tileHeight-$yPan*($numWins-1)]
  114.     set width [expr $tileWidth-$xPan*($numWins-1)]
  115.     
  116.     for {set i 0} {$i < $numWins} {incr i} {
  117.         moveWin [lindex $names $i] [expr $xMarg+$i*$xPan] [expr $yMarg+$line]
  118.         set line [expr $line+$yPan]
  119.         if ($line>$yMax) {set line 0}
  120.         sizeWin [lindex $names $i] $width $height
  121.     }
  122. }
  123.  
  124.  
  125. proc overlay {} {
  126.     global defHeight
  127.     global defWidth
  128.     global numWinsToTile
  129.     set names [winNames -f]
  130.     set numWins [llength $names]
  131.     if ($numWins<1) return
  132.     for {set i 0} {$i < $numWins} {incr i} {
  133.         moveWin [lindex $names $i] 3 40
  134.         sizeWin [lindex $names $i] $defWidth $defHeight
  135.     }
  136. }
  137.  
  138.  
  139. proc chooseAWindow {} {
  140.     set name [listpick [lsort [winNames]]]
  141.     if {[string length $name]} {
  142.         bringToFront $name
  143.         if [icon -q] { icon -f $name -o }
  144.        }
  145. }
  146.  
  147.  
  148. proc iconify {} { 
  149.     icon -t 
  150. }
  151.